home *** CD-ROM | disk | FTP | other *** search
/ Game Cracker (Expanded Edition) / Game Cracker (Expanded Edition).iso / cracks / FRSKN_UK.ZIP / forsaken_tutorial.txt < prev   
Encoding:
Text File  |  1998-11-30  |  7.2 KB  |  154 lines

  1.  
  2. Free Information Xchange presents: R!SC`S first tutorial...
  3.  
  4. Forsaken English version - CD crack by R!SC - Nov 29th, 1998
  5.  
  6. REQUIREMENTS:
  7. Full game install (I got the English version but cracking other versions should be the same)
  8. Hex editor
  9. W32Dasm
  10. Lots of Strong Coffee & cigarettes..
  11.  
  12.  
  13.    Lets get started then. First off we do a full install of the game, take out the CD and try
  14. loading Forsaken. Heh, standard Win95 messagebox tells us "Please insert the Forsaken CD", that
  15. gives us a good starting place. Make a copy of the forsaken exe you want to crack(i started with
  16. forsakenHW.exe) Load the copy into W32dasm, after it has done its magic click on the string data
  17. references button and start looking for the message that we got. Double clicking on this takes
  18. us to the evil routine that asks us for the CD (Fig.1) another double click reveals that this is
  19. the only reference to it. OK.
  20.  
  21.    Pretty straight forwards eh? A conditional jump just before the Ref that got us here, if the
  22. jump is taken, its sets eax to 1 to say that we have a CD present, so all we have to do is change
  23. the 'jne 004856FA' to a 'jmp 004856FA'. This routine is referenced by four CALL's from different
  24. parts of the program, Fig.2 displays one of these CALL's, all they do is call this routine, then
  25. check eax to see if we have a CD or not, if eax=1 then we jump over "Forsaken CD required" and
  26. carry on with the game. Changing the jne at 004856E1 skips both of the nasty message boxes and
  27. lets us play the game?
  28.  
  29.    Keep W32dasm running and load the original forsakenHW.exe into your hex editor. Double click
  30. on the 'jne 004856FA' above the Ref to "Please insert the Forsaken CD" in W32dasm and at the
  31. bottom of the screen will be your offset to Hexedit the program. Mine was 0084AE1, back into Hex
  32. editor goto 0084AE1, change the 75 (jne) to a EB (jmp), save the file and run forsaken.
  33.  
  34.    Hmmn, it doesnt ask me for the CD now but tells me that my installation is invalid... Oh well,
  35. back into W32dasm and search for that string. This takes us to Fig.3, a call, a test, a jne. Heh,
  36. weve seen this before, we have two choices, take the jump and carry on with the game, or dont
  37. take the jump and show us the nasty message. Well, i think we will take the JUMP. Double click on
  38. the 'jne 0042D52D' above the Ref to "Installation invalid". Get the offset at the bottom of the 
  39. screen and enter it into your Hex Editor. Change the 75 (jne) to a EB (jmp), save the file and
  40. run forsaken again.
  41.  
  42.    Heh, it worked this time yes? Okay, compare the two files "copy of forsakenhw.exe" & 
  43. "forsakenhw.exe", write down the offsets and the changes and make your patch (if your into that
  44. sort of thing). After testing the crack, you can test it with some other installs. Cracking the 
  45. software version is just the same, other language versions of the game should have just the same
  46. protection.
  47.  
  48. happy cracking love R!SC -- risc@notme.com
  49.  
  50. --forsak~1.exe--
  51. -forsakenHW.exe-
  52. -  2c917 > eb  -easy
  53. -  84ae1 > eb  -life
  54. ----------------
  55.  
  56. Fig.1
  57.  
  58. * Referenced by a CALL at Addresses:
  59. |:0042D4F3   , :0042DF2A   , :00479DDF   , :004CC2A7   
  60. |
  61. :004856D7 55                      push ebp       << could change this to 33c0 xor eax,eax
  62. :004856D8 8BEC                    mov ebp, esp   << could change this to 40   inc eax
  63.                                                  << and the next byte to c3   ret
  64. ;who skips the CD check as often as possible?  ;) but a jmp is easier
  65. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  66. |:004856F8(U)
  67. |
  68. :004856DA E855FFFFFF              call 00485634   << CD check routine, see 00485634.alf
  69. :004856DF 85C0                    test eax, eax   << returns a 1 in eax if CD was present
  70. :004856E1 7517                    jne 004856FA    << change this to a jmp to skip the messagebox
  71.  
  72. * Possible StringData Ref from Data Obj ->"Please insert the Forsaken CD" << text that got us here
  73.                                   |
  74. :004856E3 687C4E5B00              push 005B4E7C
  75. :004856E8 E8F79CFAFF              call 0042F3E4   << show the messagebox (with ok and cancel buttons)
  76. :004856ED 83C404                  add esp, 00000004
  77. :004856F0 85C0                    test eax, eax
  78. :004856F2 7504                    jne 004856F8    << if you clicked ok, check for the CD again
  79. :004856F4 33C0                    xor eax, eax
  80. :004856F6 EB07                    jmp 004856FF    << cancel == set the flag (eax) to NO-CD (0)
  81.  
  82. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  83. |:004856F2(C)
  84. |
  85. :004856F8 EBE0                    jmp 004856DA
  86.  
  87. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  88. |:004856E1(C)
  89. |
  90.  
  91. * Possible Ref to Menu: APPMENU, Item: "About..   F1"
  92.                                   |
  93. :004856FA B801000000              mov eax, 00000001  << set eax to say we found a CD
  94.  
  95. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  96. |:004856F6(U)
  97. |
  98. :004856FF 5D                      pop ebp
  99. :00485700 C3                      ret                << return to caller...(see below)
  100.  
  101.  
  102. ^^ Referenced by a CALL at Addresses:  ^^ (the code above was referenced by these callers)
  103. |:0042D4F3   , :0042DF2A   , :00479DDF <<    , :004CC2A7
  104.  
  105.  
  106. Fig.2
  107. --one of the four calls to the code above--
  108.  
  109. :00479DDF E8F3B80000              call 004856D7    << call routine above to check for the CD
  110. :00479DE4 85C0                    test eax, eax    << eax=1 if there was a CD
  111. :00479DE6 751B                    jne 00479E03     << jump if eax is not equal to 0
  112.  
  113. * Possible StringData Ref from Data Obj ->"Forsaken CD required"
  114.                                   |
  115. :00479DE8 6858435B00              push 005B4358
  116. :00479DED E82355FBFF              call 0042F315    << display nasty message
  117. :00479DF2 83C404                  add esp, 00000004
  118.  
  119. * Possible Ref to Menu: APPMENU, Item: "About..   F1"
  120.                                   |
  121. :00479DF5 C7058CA7860001000000    mov dword ptr [0086A78C], 00000001
  122. :00479DFF 33C0                    xor eax, eax
  123. :00479E01 EB78                    jmp 00479E7B
  124.  
  125. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  126. |:00479DE6(C)
  127. |
  128. :00479E03 E8CFDEFFFF              call 00477CD7    << carry on with whatever cus we have a Forsaken CD
  129.  
  130.  
  131. Fig.3
  132. --A new message after removing the CD check--
  133.  
  134. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  135. |:0042D4FA(C)
  136. |
  137. :0042D510 E8EC810500              call 00485701    << proberbly a routine to check your installation
  138. :0042D515 85C0                    test eax, eax    << erm
  139. :0042D517 7514                    jne 0042D52D     << letz jump always and skip the message
  140.  
  141. * Possible StringData Ref from Data Obj ->"Installation invalid" << horrid message
  142.                                   |
  143. :0042D519 688CDE5200              push 0052DE8C
  144. :0042D51E E8F21D0000              call 0042F315    << show message box with only an OK button
  145. :0042D523 83C404                  add esp, 00000004
  146. :0042D526 33C0                    xor eax, eax
  147. :0042D528 E905030000              jmp 0042D832     << hello win95
  148.  
  149. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  150. |:0042D517(C)
  151. |
  152. :0042D52D E8DE8EFEFF              call 00416410    << carry on, our install iz valid ;)
  153.  
  154.